package com.miao.im.service.auth;

import com.miao.im.dto.AuthRequestDto;
import reactor.core.publisher.Mono;

/**
 * @Auther: miaoguoxin
 * @Date: 2021/3/5 10:58
 * @Description:
 */
public interface IAuthManager<T> {

    T register(AuthRequestDto dto);

    T login(AuthRequestDto dto);

    Mono<T> reactiveLogin(AuthRequestDto dto);

    void logout(String sessionId, String deviceNumber);

    /**
     * 登出所有人
     * @author miaoguoxin
     * @date 2021/3/5
     */
    void allOut();

    /**
     * 刷新session登录时间
     * @author miaoguoxin
     * @date 2021/3/10
     */
    void refreshLoginTime(String sessionId, String deviceNumber);

}
